package junyi.card;

import junyi.SSAKObject;
import junyi.power.Action;
import junyi.power.effects.EffectSource;

/**
 * User: Junyi BEI
 * Date: 12-9-30
 * Time: 下午3:00
 */
public abstract class Function implements CardProperty, EffectSource {
  public final static int DEFAULT_START_STEP = 0;
  public final static int DEFAULT_START_CARRY = 0;

  public abstract int ready(SSAKObject... os);

  public abstract int start(SSAKObject... os);

  public int greaterThan(Card c) {
    return CardProperty.FAILURE;
  }

  public int lessThan(Card c) {
    return CardProperty.FAILURE;
  }

  public int equalsTo(Card c) {
    if(getClass() == c.getFunction().getClass()) {
      return CardProperty.SUCCESS;
    }
    return CardProperty.FAILURE;
  }
}
